package com.sy.constant;

public class BusinessConstant {
    /**
     * 属性描述: 短信发送成功的状态码
     */
    public static final int SMS_SUCCESS_CODE = 0;
    /**
     * 属性描述: Redis中用于保存验证码的key的前缀
     */
    public static final String REDIS_VALIDATE_CODE_KEY_PREFIX = "validateCode:";
    /**
     * 属性描述: 验证码的有效时间(单位:s)
     */
    public static final int VALIDATE_CODE_EXPIRE_SECONDS = 30 * 60;
    /**
     * 属性描述: Cookie中用于保存客户端唯一标识的属性的名字
     */
    public static final String COOKIE_USER_TOKEN_NAME = "token";
    /**
     * 属性描述: Cookie中用于保存客户端唯一标识的属性的初始名字
     */
    public static final String DEFAULT_COOKIE_USER_TOKEN_NAME = "defaultToken";
    /**
     * 属性描述: 用户登录状态的默认的有效时间(单位:s)
     * 1小时
     */
    public static final int USER_SESSION_DEFAULT_AGE =  60 * 60;
    /**
     * 属性描述: 用户登录状态的有效时间(单位:s)
     * 三天
     */
    public static final int USER_SESSION_MAX_AGE = 3 * 24 * 60 * 60;
    /**
     * 属性描述: Redis中用于存储学生作业的key的前缀
     */
    public static final String REDIS_USER_KEY_PREFIX = "students:";
    /**
     * 属性描述: 需要展示的最新商品的数量
     */
    public static final int NEWEST_PRODUCTS_SHOW_COUNT = 10;
    /**
     * 属性描述: Redis中商品的点击量数据
     */
    public static final String REDIS_PRODUCTS_CLICK_COUNT_KEY = "clickCount";
    /**
     * 属性描述: Redis中商品点击量的递增值
     */
    public static final int CLICK_COUNT_INCR = 1;
    /**
     * 属性描述: Redis中点击量排行榜最小索引
     */
    public static final long REDIS_CLICK_COUNT_DATA_MIN_INDEX = 0;

    /**
     * 属性描述: Redis中点击量排行榜最大索引
     */
    public static final long REDIS_CLICK_COUNT_DATA_MAX_INDEX = 9;
    /**
     * 属性描述: 定时同步点击量的Cron表达式
     */
    public static final String CRON_SYNC_CLICK_COUNT = "0 0 0 * * ?";
    /**
     * 属性描述: Redis中用于保存登录用户访问记录的key的前缀
     */
    public static final String REDIS_HISTORY_KEY_PREFIX = "history:";

    /**
     * 属性描述: Redis中用于保存未登录用户访问记录的key的前缀
     */
    public static final String REDIS_TEMP_HISTORY_KEY_PREFIX = "temp_history:";

    /**
     * 属性描述: REDIS中删除list集合中全部元素的数量
     */
    public static final long REDIS_DEL_LIST_ELE_MAX_COUNT = 0L;
    /**
     * 属性描述: 历史记录中元素的最大数量
     */
    public static final long HISTORY_LIST_MAX_LENGTH = 10L;
    /**
     * 属性描述: 历史记录中元素的最小索引
     */
    public static final long HISTORY_LIST_MIN_INDEX = 0L;
    /**
     * 属性描述: Cookie中用于保存未登录时候历史记录的Cookie的名字
     */
    public static final String COOKIE_TEMP_HISTORY_NAME = "temp_history";
    /**
     * 属性描述: 顶级分类的父级分类Id
     */
    public static final int ROOT_CATEGORY_PARENT_ID = 0;
    /**
     * 属性描述: REDIS中保存分类信息的key
     */
    public static final String REDIS_CATEGORIES_KEY = "categories";
    /**
     * 属性描述: 商品查询结果页中每页的数量
     */
    public static final long PRODUCT_SEARCH_RESULT_PAGE_SIZE = 20L;
    /**
     * 属性描述: Redis中购物车信息的key的前缀
     */
    public static final String REDIS_CART_KEY_PREFIX = "cart:";

    /**
     * 属性描述: Redis中订单编号中递增序列计数器对应的key
     */
    public static final String REDIS_ORDER_INCR_SEQUENCE_KEY = "orderId";

    /**
     * 属性描述: Redis中订单提交次数上限对应的key的前缀
     */
    public static final String REDIS_SUBMIT_ORDER_LIMIT_TIMES_KEY_PREFIX = "orderSubmitLimitTimes:";

    /**
     * 属性描述: 单位时间内订单提交的最大次数
     */
    public static final long ORDER_SUBMIT_MAX_TIMES = 3L;
    /**
     * 属性描述: 订单提交的最大次数对应的时间（单位:s）
     */
    public static final int ORDER_SUBMIT_MAX_TIMES_LIMIT_PERIOD = 30;
}
